import { useAuthStore } from '@/stores/auth'

/**
 * 权限检查Hook
 */
export function usePermission() {
  const authStore = useAuthStore()
  
  /**
   * 检查是否有指定权限
   * @param permission 权限标识
   * @returns 是否有权限
   */
  const hasPermission = (permission: string): boolean => {
    if (!permission) {
      return true
    }
    
    const { permissions } = authStore
    
    // 管理员拥有所有权限
    if (permissions.includes('*')) {
      return true
    }
    
    // 支持逗号分隔的多个权限（只要有一个就通过）
    if (permission.includes(',')) {
      return permission.split(',').some(p => permissions.includes(p.trim()))
    }
    
    return permissions.includes(permission)
  }
  
  /**
   * 检查是否有指定角色
   * @param role 角色标识
   * @returns 是否有角色
   */
  const hasRole = (role: string): boolean => {
    if (!role) {
      return true
    }
    
    const { roles } = authStore
    
    // 管理员拥有所有角色
    if (roles.includes('admin')) {
      return true
    }
    
    // 支持逗号分隔的多个角色（只要有一个就通过）
    if (role.includes(',')) {
      return role.split(',').some(r => roles.includes(r.trim()))
    }
    
    return roles.includes(role)
  }
  
  return {
    hasPermission,
    hasRole
  }
} 